hidpi_scale_at_192
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Tue, 25 Sep 2018 21:26:54 +0000 (22:26 +0100)
committerLisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Tue, 25 Sep 2018 21:26:54 +0000 (22:26 +0100)
Gbp-Pq: Name hidpi_scale_at_192.diff

src/plugins/platforms/xcb/qxcbscreen.cpp

index df458e85d7cae32e5d58e4bcb638a062a3ea1c50..e1bd8eb752faa5f673fafb7499ffd87a06e964ca 100644 (file)
@@ -750,7 +750,12 @@ void QXcbScreen::updateGeometry(const QRect &geometry, uint8_t rotation)
         m_sizeMillimeters = sizeInMillimeters(geometry.size(), virtualDpi());
 
     qreal dpi = geometry.width() / physicalSize().width() * qreal(25.4);
-    m_pixelDensity = qMax(1, qRound(dpi/96));
+    qreal rawFactor = dpi/96;
+    int roundedFactor = qFloor(rawFactor);
+    // Round up for .8 and higher. This favors "small UI" over "large UI".
+    if (rawFactor - roundedFactor >= 0.8)
+        roundedFactor = qCeil(rawFactor);
+    m_pixelDensity = qMax(1, roundedFactor);
     m_geometry = geometry;
     m_availableGeometry = geometry & m_virtualDesktop->workArea();
     QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);